package com.day05;

/**
 * 二维数组:
 * 如果说可以把一维数组当成几何中的线性图形，那么二维数组就相当于是一个表格，像右图Excel中的表格一样。
 * 对于二维数组的理解，我们可以看成是一维数组array又作为另一个一维数组array2的元素而存在。
 * 其实从数组底层运行机制来看，其实没有多维数组。
 * <p>
 * 2.
 */
public class ArrayTest3 {
    public static void main(String[] args) {
        //1.声明二维数组
        int[] arr = new int[]{1, 2, 3};//一维数组

        //静态二维数组
        int[][] arr1 = new int[][]{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}};
        //动态初始化
        String[][] arr2 = new String[3][2];
        //动态初始化2
        String[][] arr3 = new String[3][];
        //错误的情况
//        String[][] arr4 = new String[][4];
        //正确:
        int[][] arr4 = new int[][]{{1, 2, 3}, {4, 5}, {6, 7, 8}};
        int[] arr5 = {1, 2, 3, 4, 5};            //类型推断

        //2.如何调用数组的指定位置的元素
        System.out.println(arr1[0][1]); //2

        //3.获取数组的长度
        int length = arr1.length;
        int length1 = arr1[0].length;
        int length2 = arr1[1].length;
        System.out.println(length);

        //4.如何遍历二维数组
        for (int i = 0; i < arr4.length; i++) {
            for (int j = 0; j < arr4[i].length; j++) {
                System.out.println(arr4[i][j] + "  ");
            }
            System.out.println();
        }

    }
}
